<?php
namespace app\controller;

defined('IN_IA') or exit('Access Denied');

use app\pub\ErrJson;
use think\facade\Db;
use think\Request;
use think\facade\Filesystem;

//use League\Flysystem\Filesystem;
use Overtrue\Flysystem\Qiniu\QiniuAdapter;
use Overtrue\Flysystem\Qiniu\Plugins\FetchFile;

/**
 * 存储配置项
 * Class Memory
 * @package app\controller
 */

class Memory
{
    /**
     * 查询配置信息
     * @param Request $request
     */
    public function getInfoByUniacid(Request $request){
        // 先查询有没有
        $uniacid = $request->header('uniacid');
        $data = Db::table('ims_zst_marketing_memory')
            ->where('uniacid',$uniacid)
            ->findOrEmpty();
        if(!empty($data)){
            return ErrJson::success_json($data);
        }
        // 如果没有的话自动添加新的配置，默认使用本地存储
        $data2 = Array(
            'type' => 0,
            'uniacid' => $uniacid
        );
        $totol = Db::name('ims_zst_marketing_memory')->insert($data2);
        if($totol>0){
            $data = Db::table('ims_zst_marketing_memory')
                ->where('uniacid',$uniacid)
                ->findOrEmpty();
            return ErrJson::success_json($data);
        }
        return ErrJson::error_json('初始化失败');
    }

    /**
     * 修改
     * @param Request $request 请求头
     * @param $id 如果有ID那么是修改，没有ID事新增
     * @param $type 类型，1：仓库，2：门店
     * @param $qn_accesskey 仓库名称
     * @param $qn_secretkey 仓库介绍
     * @param $qn_bucket 仓库代码
     * @param $qn_url 仓库位置
     */
    public function update(Request $request){
        $uniacid = $request->header('uniacid');
        $params = $request->param();
        $params['update_time'] = date('Y-m-d h:i:s', time());

        // 判断是否有id键值，如果有说明是修改，不需要判断，仓库代码不能直接修改
        $totol = Db::name('ims_zst_marketing_memory')
            ->where('uniacid',$uniacid)
            ->where('id',$params['id'])
            ->data($params)
            ->update();
        if($totol==1){
            return ErrJson::success_json('');
        }
        return ErrJson::error_json('提交失败');
    }

    /**
     * 上传文件
     * @param Request $request
     */
    public function uploadfile(Request $request) {
        $file = $request->file('image');
        $uniacid = $request->header('uniacid');
        // 获取文件上传配置
        $data = Db::table('ims_zst_marketing_memory')
            ->where('uniacid',$uniacid)
            ->findOrEmpty();

        if($data['type']==0){
            $savename = Filesystem::putFile( 'topic', $file);
            return  ErrJson::success_json($savename);
        }
        if($data['type']==1){
            $savename =  Filesystem::disk('qiniu')->putFile('topic',$file);
            return  ErrJson::success_json($savename);
        }
    }

    /**
     * 获取资源文件前缀
     * @param Request $request
     */
    public function getFileUrl(Request $request) {
        $uniacid = $request->header('uniacid');
        // 获取文件上传配置
        $data = Db::table('ims_zst_marketing_memory')
            ->where('uniacid',$uniacid)
            ->findOrEmpty();

        // 获取当前的URL
        $url = $request->domain();

        return ErrJson::success_json($data['type']==0 ? $url.'/addons/zst_marketing/inc/web/runtime/storage/' : $data['qn_url'].'/');
    }

    /**
     * 测试存储配置
     * @param Request $request
     */
    public function memorytest(Request $request){
        $file = $request->file('image');
        //        $savename = \think\facade\Filesystem::putFile( 'topic', $file);
        $savename =  Filesystem::disk('qiniu')->putFile('topic',$file);
        print_r($savename);

        $uniacid = $request->header('uniacid');

//        if($params['type']==1){
//            // 测试七牛
//            $auth= attachment_qiniu_auth(trim($params['accesskey']), trim($params['secretkey']), trim($params['bucket']));
//            print_r($auth);
//        }



//            load()->model('attachment');
//            $_GPC['secretkey'] = strexists($_GPC['secretkey'], '*') ? $_W['setting']['remote_complete_info']['qiniu']['secretkey'] : $_GPC['secretkey'];
//            $auth= attachment_qiniu_auth(trim($_GPC['accesskey']), trim($_GPC['secretkey']), trim($_GPC['bucket']));
//            if (is_error($auth)) {
//                iajax(-1, '配置失败，请检查配置。注：请检查存储区域是否选择的是和bucket对应<br/>的区域', '');
//            }
//            load()->func('communication');
//            $url = $_GPC['url'];
//            $url = strexists($url, 'http') ? trim($url, '/') : 'http://'.trim($url, '/');
//            $filename = 'MicroEngine.ico';
//            $response = ihttp_request($url. '/'.$filename, array(), array('CURLOPT_REFERER' => $_SERVER['SERVER_NAME']));
//            if (is_error($response)) {
//                iajax(-1, '配置失败，七牛访问url错误');
//            }
//            if (intval($response['code']) != 200) {
//                iajax(-1, '配置失败，七牛访问url错误,请保证bucket为公共读取的');
//            }
//            $image = getimagesizefromstring($response['content']);
//            if (!empty($image) && strexists($image['mime'], 'image')) {
//                iajax(0,'配置成功');
//            } else {
//                iajax(-1, '配置失败，七牛访问url错误');
//            }
    }

}
